from nonebot import on_command, CommandSession, get_bot, on_notice, NoticeSession, scheduler
from nonebot.permission import SUPERUSER
import asyncio
import re  # 引入正则表达式模块
from datetime import datetime
import requests
import os

bot = get_bot()

# 使用列表存储收到的所有消息
messages = []

# 定义处理群聊消息的函数
@bot.on_message('group')
async def handle_group_message(ctx):
    global messages
    message = str(ctx['message'])  # 将 Message 对象转换为字符串
    sender = ctx['sender']['nickname']  # 获取发送者昵称
    time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 获取当前时间
    formatted_message = f'群昵称或发送者名：{sender}\n发送时间：{time}\n发送内容：{message}'
    messages.append(formatted_message)

# 定义处理私聊消息的函数
@bot.on_message('private')
async def handle_private_message(ctx):
    global messages
    message = str(ctx['message'])  # 将 Message 对象转换为字符串
    sender = ctx['sender']['nickname']  # 获取发送者昵称
    time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 获取当前时间
    formatted_message = f'群昵称或发送者名：{sender}\n发送时间：{time}\n发送内容：{message}'
    messages.append(formatted_message)

# 定义定时任务
@scheduler.scheduled_job('interval', hours=1)
async def timed_task():
    global messages
    # 获取当前的日期和时间，并将其格式化为字符串
    now = datetime.now()
    filename = now.strftime('%Y-%m-%d_%H-%M-%S') + '.txt'
    # 构建文件路径
    filepath = os.path.join('historymessage', filename)
    # 将收集到的消息打包成一个txt文件
    with open(filepath, 'w', encoding='utf-8') as f:
        for message in messages:
            f.write(message + '\n')
    # 清空消息列表
    messages = []
